﻿using System;
using System.Collections.Generic;
using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;
using System.Web.UI.WebControls;
//
using ddcCajamarca.BusinessEntities.AgendaCultural;
using ddcCajamarca.BusinessLogic.AgendaCultural.Service;
using Microsoft.Ajax.Utilities;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;

namespace ddcCajamarca.Web.AgendaCultural
{
    public partial class AgregarActividadesFrm : System.Web.UI.Page
    {
        #region Declaracion de Dependencias
        [Dependency]
        public IEventoBL EventoBL { get; set; }

        [Dependency]
        public IActividadEventoBL ActividadEventoBL { get; set; }

        [Dependency]
        public IAmbienteBL AmbienteBL { get; set; }

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            var opc = Request.QueryString["opc"];
            var idActividad = Request.QueryString["idActividad"];

            var idEvento = Request.QueryString["idEvento"];

            #region Nuevo, Editar y Eliminar
            if (!Page.IsPostBack)
            {
                if (opc!=null && opc.Equals("nuevo"))
                {
                    ViewState["opc"] = "nuevo";

                    var eventId = Int32.Parse(idEvento);
                    var evento = EventoBL.GetEvento(eventId);

                    lblName.Text = evento.NombreEvento;

                }
                else if (opc != null && opc == "eliminar" && idActividad != null)
                {
                    var id = Int32.Parse(idActividad.ToString());

                    ActividadEventoBL.DeleteActividadEvento(id);
                    Response.Redirect("frmListarEventos.aspx");
                }
            }
            #endregion

        }

        #region Consultas Get
        public IEnumerable<Ambiente> getAmbientes()
        {
            var ambientes = AmbienteBL.GetAllFromAmbientes().ToList();

            ambientes.Insert(0, new Ambiente() { Id = 0, NombreAmbiente = "[- Selecciona un Ambiente -]" });

            return ambientes.AsEnumerable();
        }
        #endregion

        #region Para agregar la cantidad de actividades que necesitemos
        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            //convertimos la cantidas a un int
            var cantidad = Int32.Parse(tbxCantidad.Text);

            //para coger el objeto
            var id = Request.QueryString["idEvento"];
            var idEvento = Int32.Parse(id);

            var lista = new List<ActividadEvento>();

            for (Int32 i = 0; i < cantidad; i++)
            {
                var item = new ActividadEvento()
                {
                    EvenId = idEvento,
                };

                

                lista.Add(item);
            }

            lvActividades.DataSource = lista;
            lvActividades.DataBind();

        }

        #endregion

        protected void btnGuardar_Click(object sender, EventArgs e)
        { 
            if (ViewState["opc"].ToString()=="nuevo")
            {
                var id = Request.QueryString["idEvento"];
                var idEvento = Int32.Parse(id);

                foreach (var row in lvActividades.Items)
                {
                    var tbxNomActividad = row.FindControl("tbxNameActividad") as TextBox;
                    var tbxDia = row.FindControl("tbxDia") as TextBox;
                    var tbxHInicio = row.FindControl("tbxHInicio") as TextBox;
                    var tbxHFin = row.FindControl("tbxHFin") as TextBox;
                    var ddlLugar = row.FindControl("ddlLugarEvento") as DropDownList;

                    var actividad = new ActividadEvento()
                    {
                        Nombre = tbxNomActividad.Text,
                        Dia = DateTime.Parse(tbxDia.Text),
                        HInicio = DateTime.Parse(tbxHInicio.Text),
                        HFin = DateTime.Parse(tbxHFin.Text),
                        LugarId = Int32.Parse(ddlLugar.SelectedValue.ToString()),

                        EvenId = idEvento
                    };

                    ActividadEventoBL.AddActividadEvento(actividad);
                }

                Response.Redirect("frmListarEventos.aspx");
            }

        }

    }
}